package NGUYENVANDOAN.GENERICS.SAMPLE02.GENERICS_WILDCARDS.EXAMPLE01;

import java.util.Collection;

public class ControllerWildCards {

    /***
     * Vẽ đối tượng ko sử dụng Generics
     * @param shapesCircle
     */
    public static void drawObject(Collection<Object> shapes) {
        shapes.notify();
    }

    /***
     * Vẽ đối tượng có sử dụng Generics - WildCards Types (bắt đối tượng đó phải kế thừa 01 lớp nào đó)
     * @param shapes
     */
    public static void drawObjectGenerics
    (Collection<? extends GeometricObjects> shapes) {
        shapes.notify();
    }

    public static void main(String[] str) {
        Collection<Circle> objCircles = null;
        Collection<Octagon> objOctagon = null;
        drawObjectGenerics(objCircles);
        // drawObjectGenerics(objOctagon); //Err do Octagon ko thực thi kế thừa
        // GeometricObjects nên ko thể mapping đc
    }
}
